package br.com.trabalho.controller;

import br.com.trabalho.banco.Transacoes;
import br.com.trabalho.entidades.Receita;
import br.com.trabalho.entidades.Usuario;
import br.com.trabalho.util.Util;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("/index")
public class Index extends HttpServlet {
    private static final long serialVersionUID = -8906964736415597503L;

    private final static int maximoExibicaoIndice = 3;
    
    protected void processa(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();
        String url = "index.jsp";
        
        List<Receita> receitasDoces = Transacoes.buscaReceitaCategoria("Doces");
        List<Receita> receitasSalgadas = Transacoes.buscaReceitaCategoria("Salgados");
        List<Receita> receitasAperitivo = Transacoes.buscaReceitaCategoria("Aperitivos");
        List<Receita> receitasBebidas = Transacoes.buscaReceitaCategoria("Bebidas");
        List<Receita> receitasFastFood = Transacoes.buscaReceitaCategoria("Fast-food").subList(0, maximoExibicaoIndice);
        
        session.setAttribute("DOCES", receitasDoces);
        session.setAttribute("SALGADOS", receitasSalgadas);
        session.setAttribute("APERITIVOS", receitasAperitivo);
        session.setAttribute("BEBIDAS", receitasBebidas);
        session.setAttribute("FASTFOOD", receitasFastFood);
        
        
        if(request.getParameter("logout")!=null){
            String teste = request.getParameter("logout");
            if(teste.equals("true"))
                session.removeAttribute(Util.user);
        }
        
        if(request.getParameter("login")!=null){
            String logou = "false";
                try {
                    Usuario u = Transacoes.realizarLogin(request.getParameter("login"), request.getParameter("senha"));
                    session.setAttribute(Util.user, u);
                } catch (Transacoes.UsuarioOuSenhaInvalidoException ex) {
                    url = "login.jsp?login=false";
                } 
        }        
        response.sendRedirect(url);
    }

    @Override
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        processa(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        processa(request, response);
    }

}
